Web-сервер на базе Linux

Установка, настройка.

1. Введение.

2. Почему Linux?

3. Установка и настройка PC-роутера

4. Установка и настройка WEB-сервера.

5. Заметки на полях

6. Заключение

1 Введение.

2 Почему Linux ?

3 Установка и настройка PC-роутера.

3.1 . Применённое оборудование.
3.1 . С чего начать?

Сначала необходимо достать CD ROM или скачать дистрибутив Linux.Я воспользовался дистрибутивом Slackware.Сейчас доступна версия Slackware-4.0 на ftp://sunsite.unc.edu/ Если брать его с FTP ,достаточно скачать каталог /pub/linux/distributions/slackware/slakware/, затем из каталога /pub/Linux/distributions/slackware/bootdsks.144/ забираем файл README и с помощью него определяем нужный имидж загрузочного диска(это будет зависеть от типа винчестера,наличия CD-ROM и его типа,типа звуковой карты).Желательно использовать имиджи со встроенной сетевой поддержкой. Например,для диска IDE с сетевой поддержкой пойдёт net.i.Затем из каталога /pub/Linux/distributions/slackware/rootdsks/ скачиваем файл color.gz ,а так же файл RAWRITE.EXE.

На машине с DOS или Windows перепишите RAWRITE.EXE на c:\ ,запустите команду for.ex. c:\RAWRITE.EXE net.i a:,вставьте отформатированную дискету в дисковод А:, следуйте инструкциям с экрана.В результате у нас в руках boot диск.Подпишите его!

Запустите команду for.ex. c:\RAWRITE.EXE color.gz a:,вставьте дискету в дисковод А:, следуйте инструкциям с экрана.В результате у нас в руках root диск.Тоже подпишите его! Затем,чтобы не мучиться с CD ROM,грузимся с дискеты MSDOS и с помощью команды fdisk создаём на винчестере раздел DOS размером ~300Mb(остальное пространство не размечаем ) и переносим на него каталог slakware.Сделать это можно либо с другого винчестера, либо по локальной сети.

Теперь вставляем boot диск в дисковод ,затем,когда это понадобится root диск. На экране появляется приглашение darkstar login:Вводим root .

Ура!Можно приступать к разметке диска.

3.3 .Разметка винчестера.

Набираем команду fdisk(это уже Linuxовый fdisk) ,видим Command (m for help): m 2. Вводим команду n,видим

Command action

e extended

p primary partition (1-4) выбираем p и 2,видим ,например,First cylinder (322-622),вводим первое число,в данном случае 322.Потом вводим +32M, устанавливая размер этого раздела 32 Mb.Потом вводим команду t . На экране появится Partition number, вводим 2.На экране:

Hex code (type L to list codes):

вводим 82 (это будет swap partition).

Снова вводим команду n уже для создания,раздела Linux.Соглашаемся с First cylinder и размечаем диск до конца .При помощи команды t ставим Hex code для этой partition 83 (это будет linux partition).

Делаем Linux partition и Dos partition (если нужно будет с неё загружаться) активными командой a .

.Проверяем операцию командой p.Видим примерно такое:

Disk /dev/hda: 64 heads, 63 sectors, 622 cylinders

Units = cylinders of 4032 * 512 bytes

Device Boot Begin Start End Blocks Id System

/dev/hda1 * 1 1 254 512032+ 6 DOS 16-bit >=32M

/dev/hda2 255 255 271 34272 82 Linux swap

/dev/hda3 * 272 272 621 705600 83 Linux native

Желательно записать эти данные на бумагу,они понадобятся в дальнейшем.Конечно,можно их увидеть при помощи команды fdisk с ключом p,но это не всегда удобно.

Записываем всё командой w и перезагружаем машину при помощи дискет boot и root. Многие дистрибутивы выполняют подготовку swap partition в процессе инсталляции,но чтобы избежать возможных проблем,лучше отформатировать её перед запуском команды setup.Делается это при помощи команды

mkswap -c (partition) (size)

В нашем случае это выглядит так:

mkswap -c /dev/hda2 34272

Для активизации swap partition применяем команду в нашем случае:

swapon /dev/hda2

Swap partition готова!

Теперь нужно на Linux partition создать файловую систему.Наиболее широко используемой является Second Extended Filesystem или ext2fs.Для её создания используйте команду

mke2fs -c (partition) (size),в нашем случае это выглядит так:

mke2fs -c /dev/hda3 705600

Всё ,можно приступать к инсталляции!!!!

3.4 .Инсталляция Linux.

После перезагрузки опять регистрируемся как root и вводим команду setup: Из меню выбираем Sourse и в предложенной строке вводим раздел /dev/hda1. Потом выбираем DISK SETS и при помощи клавиши пробела отмечаем нужные опции для инсталляции.

3.5 .Компиляция ядра.

3.6 .Настройка TCP/IP.Настройка route.Файлы rc.inet1,rc.inet2,rc.M.

3.7 .Настройка named.

3.8 .Настройка PPP.

3.9 .Настройка даты и времени.

Дата и время в Linux выставляется при помощи команды date.Обычно дата выставляется в hardware-clock и требуется лишь корректировка времени при переводе на летнее и зимнее время. Пусть сейчас 15:00.Введите с консоли:

date -s 15:00:00

Системное время установится на 15:00.Чтобы установить компьютерные часы на то же время применяйте команду:

clock -w

Ваши компьютерные часы синхронизируются с системным временем.

Информация о временной зоне содержится в каталоге /usr/lib/zoneinfo.Зона устанавливается командой:

timeconfig.

3.10 .Настройка ограничителя трафика.

В процессе эксплуатации сети может возникнуть ситуация,когда необходимо ограничить трафик по одному из интерфейсов, Например,ваш роутер подключён к Интернету через модемный линк 28800 и он же находится на локальной сети.Может возникнуть необходимость ограничить трафик через интерфейс локальной сети.Это делает traffic shaper.

Сначала необходимо скачать 2 файла shaper-2_0_33_patch.gz или взять отсюда и shaper-alpha-15_tar.gz Эти программы требуют наличия ядра 2.0.33.

Затем нужно поставить патч на ядро.Для этого

1.Скопируйте shaper-2_0_33_patch.gz в каталог /usr/src,

2.Перейдите в этот каталог командой cd /usr/src

3.Наберите в командной строке:

zcat shaper-2_0_33_patch.gz |patch

В результате,вы готовы к компиляции ядра с поддержкой traffic shaper.

Вводите в командной строке

make config

Для поддержки traffic shaper нужно на вопрос:

Traffic Shaper (EXPERIMENTAL) (CONFIG_SHAPER) [m/N/y?]

ответить m ,чтобы скомпилировался загружаемый модуль.Ответы на остальные вопросы в зависимости от конфигурации.

Далее пишите

make clean dep modules modules_install

После этого скомпилируйте ядро ,но на вопрос Traffic Shaper (EXPERIMENTAL) (CONFIG_SHAPER) [m/N/y?] нужно ответить Y и набрать в командной строке

make dep clean zImage

После этого командой cp /usr/src/linux/arch/i386/boot/zImage /shapeimage перенесите получившееся ядро в корневой каталог и замените в файле /etc/lilo.conf строку image = /linuz на строку image = /shapeimage и введите команду

lilo

После этого можно перегружать машину командой

reboot

Если загрузка прошла успешно можно компилировать программу конфигурирования shapecfg.

Для этого скопируйте файл shaper-alpha-15_tar.gz в каталог /usr/src и выполните команду

tar vxfz shaper-alpha-15_tar.gz

и выполните команду

cd shaper

в этом каталоге содержится файл shapecfg.c , скомпилируйте его командой

cc shapecfg.c и получившийся файл a.out скопируйте в директорию /usr/sbin ,переименовав его в shapecfg

cp a.out /usr/sbin/shapecfg

Теперь можно приступать к проверке.Вводим команду

cd /lib/modules/2.0.33/net

insmod shaper.o

Если всё прошло гладко , подключаем интерфейс

shapecfg attach shaper0 eth0 и ограничиваем скорость на нём до 19200

shapecfg speed shaper0 19200,затем поднимаем интерфейс , например , для сети 192.168.10.0

ifconfig shaper0 192.168.10.1 , и добавляем его в таблицу маршрутизации:

route add -net 192.168.10.0

Теперь на рабочей станции настраиваем клиента,указав в качестве gateway адрес ,подключённый к shaper0 (192.168.10.1) и проверяем как всё работает

Установка и настройка WEB-сервера.

4.1. Применённое оборудование.

4.2. Настройка IPX

4.3. Установка и настройка sendmail.

4.4. Установка и настройка squid.

Одним из самых популярных proxy-серверов является Squid С помощью него я организовал доступ к Internet клиентов ,находящихся на немаршрутизируемой сети 192.168.1.0 Сначала необходимо скачать файл squid-1.1.0-src.tar.gz Затем скопируйте его в каталог /usr/src.Перейдите в этот каталог и выполните команду

tar xvfz squid-1.1.0-src.tar.gz

(Не забывайте пользоваться шаблонами,например, tar xvfz squid*).В результате появляется каталог /usr/src/squid-1.1.0.Перейдите в него и наберите в командной строке

configure

Когда команда отработает,наберите

make all

а затем

make install

После этого появляется каталог /usr/local/squid/.В каталоге /usr/local/squid/etc/ лежит файл squid.conf.default. Переименуйте его в squid.conf и отредактируйте по своему вкусу.Мой файл лежит здесь.Обязательно редактируются

cache_dir /proxy/cache -директория ,где находится кэш.

cache_swap 450 -размер кэша в мегабайтах.

cache_mgr webmaster@trest.uryupinsk.ru -E-mail адрес для претензий.

Для того чтобы squid запускался при загрузке машины ,нужно поместить в файл /etc/rc.d/rc.local строку /usr/local/squid/bin/RunCache &.

Перегружайте машину и настраивайте клиентов.Подробнее здесь.

4.4.1 Ограничение доступа.

У меня имеется две сети:одна -пул адресов полученный у провайдера ,например 194.56.83.97 по 194.56.83.126 с маской 255.255.255.224.А для пользователей имеется сеть 192.168.1.0.Нужно обеспечить доступ к прокси -серверу пользователям первой группы,а со второй группы только с адресов с 192.168.1.2 по 192.168.1.10,чтобы не увеличивать трафик. Первую группу назовём hackers,вторую users.Для дистанционного управления squid нужно скопировать файл /usr/local/squid/bin/ cachemgr.cgi в каталог /cgi-bin/ HTTP сервера Apache и сделать его членом группы manager.В файле squid.conf,это выглядит так:

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl all src 0.0.0.0/0.0.0.0

acl users src 192.168.1.2-192.168.1.10/255.255.255.255

acl hackers src 194.56.83.98-193.124.51.126/255.255.255.224

acl example src 194.56.83.116/255.255.255.255

http_access deny manager !localhost !example

http_access allow users

http_access allow hackers

http_access deny all

Для выполнения жизнено важных операций по администрированию squid нужно задать пароль.Например,для shutdown и squid.conf пароль vasya.

cachemgr_passwd vasya shutdown squid.conf

4.4.2 Обеспечение анонимности.

Для обеспечения невидимости (анонимности) внутренних адресов для внешнего мира нужно в файле squid.conf найти строчку

#forwarded_for on.

По умолчанию стоит on,строчку надо раскомментировать и поставить

forwarded_for off

Проверить результативность операции можно при помощи этой: ссылки до и после операции.

4.5. Установка и настройка apache.

Я установил себе сервер Apache,потому что

4.6. Настройка Wu-ftpd.

4.6.2 Настройка анонимного доступа.

Для того,чтобы информацию ,размещённая на вашем сервере,можно было сделать доступной всем,wu-ftpd нужно настроить для анонимного доступа.

Сначала добавьте в файл /etc/passwd строку:

ftp:*:400:400:Anonymous FTP:/home/ftp:/bin/true

Обратите внимание,что в качестве shell указан несуществующий файл.Это сделано из соображений секретности, чтобы нельзя было зарегистрироваться в системе под именем ftp.При установке Linux каталоги для ftp создаётся автоматически.Тем не менее будет не лишним проверить владельцев и их права на каталоги.

Для этого выполните следующие команды:

chown root.wheel /home/ftp
chmod 555 /home/ftp
chown root.wheel /home/ftp/bin
chmod 111 /home/ftp/bin
cp /bin/ls /home/ftp/bin
chmod 111 /home/ftp/bin/ls
chmod 555 /home/ftp/pub

Если желаете,можно добавить возможность upload.Для этого создай те каталог incoming и выполните следующие действия:

chmod 733 /home/ftp/incoming

Проверьте в файле ftpaccess наличие строки:

upload /home/ftp /incoming yes root daemon 0600 nodirs

Анонимный доступ установлен.Желающие более тонко настроить доступ могут прочитать об этом здесь.

4.6.3 Как установить guest account.

Требуется установить account для пользователя webuser,желающего иметь доступ к каталогу /home/web/webuser.Это нужно для того, чтобы дать возможность пользователям обновлять информацию на своей www-странице.

Сначала нужно скачать и установить заменитель shell для пользователей ftp.Это нужно для того,чтобы пользователь,получив guest account не смог под ним войти ,например telnetом,в систему.Этот заменитель назовём к примеру, ftponly.sh.Добавьте в файл /etc/shells строку:

/usr/local/bin/ftponly.sh

и скопируйте ftponly.sh в /usr/local/bin/.

Далее добавьте соответствующие строки в /etc/passwd и в /etc/group.Это должно выглядеть так:

/etc/passwd:

webuser:*:403:400:User web:/home/web/webuser/./:/usr/local/bin/ftponly.sh

Выражение /./ служит для того,чтобы сделать директорию /home/web/webuser/ корневой для пользователя webuser и не позволить ему переместиться выше по дереву каталогов.

/etc/group:

client::401:webuser

Введите команду для присвоения пароля.

passwd webuser

Убедитесь,что файл ftpaccess содержит строки:

class localreal real,guest *.trest.uryupinsk.ru 193.124.51.*
guestgroup client

Создайте структуру каталогов для webuser. Для этого выполните следующие команды :

mkdir /home/web/webuser
chown webuser.client /home/web/webuser
chmod 755 /home/web/webuser
cd /home/web/webuser
mkdir bin
chown root.daemon bin
chmod 111 bin
cp /home/ftp/bin/ls bin
chown root.bin bin/ls
chmod 111 bin/ls

Можно скопировать получившийся каталог bin в /etc/skel,тогда при создании нового пользователя в его каталоге создаётся каталог bin c ls.

Вот и всё,guest account готов!Подробнее читайте здесь.

4.7 Как установить Linux и Windows NT на одной машине.
Иногда бывает нужно настроить машину таким образом,чтобы была возможность запускать на ней и Linux и Windows NT .
Сначала установите Windows NT. Если Вы хотите использовать NTFS для своего раздела Windows NT, имейте в виду, что сегодня промышленная версия Linux может не иметь доступ к разделам NTFS.Fdisk определяет NTFS-раздел как раздел HPFS.Это нормально. Не забудьте оставить место на диске для установки Linux и swap partition!
Теперь загрузите linux с дискет, создаите swap partition и root-partition.Загрузитесь снова с дискет и установите Linux как обычно.
Когда вы переходите к Lilo-секции,определите свой Linux-root-раздел как ваше boot device поскольку Master Boot Record (MBR) вашего диска принадлежит Windows NT. Это означает, что root-entry и boot-entry в ваш /etc/lilo.conf должны быть одинаковыми. Если у вас IDE-диск и раздел Linux-во втором разделе, ваш boot-entry в /etc/lilo.conf выглядит как:

boot=/dev/hda2

Не забудьте создать загрузочную дискету!Первый раз после установки придётся запускаться именно с нее!

Запустите lilo с ядром, которое соответствует вашей системе. Проверьте ядро, загружая Linux с дискеты. Вы должны загрузиться с дискет пока не выполнены работы на NT.
Теперь Вы должны закбрать bootsector из своего Linux-root-partition. Для Linux раздела /dev/hda2 dd-команда выглядит следующим образом:

# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1

Теперь скопируйте файл bootsect.lnx на DOS-форматированную дискету командами:

# mount -t msdos /dev/fd0 /mnt
# cp /bootsect.lnx /mnt
# umount /mnt


Скопируйте файл bootsect.lnx с дискеты на системный раздел Windows NT,например на C:
Теперь измените ваш файл boot.ini,с тем,чтобы он содержал запись ,относящуюся к Linux:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ...
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ...
C:\BOOTSECT.LNX="Linux"


После перезагрузки Windows NT вы должны увидеть следующее...

OS Loader V4.00
Please select the operating system to start:
Windows NT Workstation Version 4.0
Windows NT Workstation Version 4.0 [VGA mode]
Linux

Выбирайте Linux и наблюдайте

LILO loading zImage ....


Подробнее об этом написано здесь.

5. Заметки на полях


- Чтобы проверить,какие разделяемые библиотеки использует та или иная программа,используйте команду ldd:
For.ex. ldd mc

6. Заключение



Hosted by uCoz